package com.wkbb.common.dto.basic;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * @author luowenyan
 * @version V1.0
 * @className OrgServiceConfigDto
 * @description TODO
 * @date 2019/8/19 12:27
 */
@Data
public class OrgServiceConfigDto {
    /**
     * 编号
     */
    @ApiModelProperty(value = "编号")
    private Long id;

    /**
     * 组织ID
     */
    @ApiModelProperty(value = "组织ID")
    private Long orgId;

    /**
     * 是否启动收费验证 0：失效 1：生效
     */
    @ApiModelProperty(value = "是否启动收费验证 0：失效 1：生效")
    private Boolean checkFlag;

    /**
     * 基础服务验证 0：失效 1：生效
     */
    @ApiModelProperty(value = "基础服务验证 0：失效 1：生效")
    private Boolean basicFlag;

    /**
     * 高级服务验证 0：失效 1：生效
     */
    @ApiModelProperty(value = "高级服务验证 0：失效 1：生效")
    private Boolean secondFlag;

    /**
     * 第三服务验证（以后扩张） 0：失效 1：生效
     */
    @ApiModelProperty(value = "第三服务验证（以后扩张） 0：失效 1：生效")
    private Boolean thirdFlag;

    /**
     * 第四服务验证（以后扩张） 0：失效 1：生效
     */
    @ApiModelProperty(value = "第四服务验证（以后扩张） 0：失效 1：生效")
    private Boolean fourthFlag;

    /**
     * 是否启动微信收费 0：失效 1：生效
     */
    @ApiModelProperty(value = "是否启动微信收费 0：失效 1：生效")
    private Boolean wxFlag;

    /**
     * 是否发送短信(0:否 1:是)
     */
    @ApiModelProperty(value = "是否发送短信(0:否 1:是)")
    private Boolean smsFlag;

    /**
     * 园长接收教职工考勤推送 0：不推送 1：推送 默认0
     */
    @ApiModelProperty(value = "园长接收教职工考勤推送 0：不推送 1：推送 默认0")
    private Boolean receiveAttendMaster;

    /**
     * 园长接收学生考勤推送 0：不推送 1：推送 默认0
     */
    @ApiModelProperty(value = "园长接收学生考勤推送 0：不推送 1：推送 默认0")
    private Boolean receiveAttendStudent;

    /**
     * 临时开闸开关 0：正常模式 1：强制开 2：强制关
     */
/*    @ApiModelProperty(value = "临时开闸开关 0：正常模式 1：强制开 2：强制关")
    private Short openGateFlag;*/

    /**
     * 人脸识别相似度 取值：85-95 默认90
     */
    @ApiModelProperty(value = "人脸识别相似度 取值：85-95 默认90")
    private Byte similarity;

    /**
     * 是否收费项目全部免费 0：失效 1：生效
     */
    @ApiModelProperty(value = "是否收费项目全部免费 0：失效 1：生效")
    private Boolean freeFlag;

    /**
     * 服务订单收费最小单位 月份：1-12 默认：2
     */
    @ApiModelProperty(value = "服务订单收费最小单位 月份：1-12 默认：2")
    private Byte leastUnitForService;

    /**
     * 非付费用户是否推送消息  0：不推送 1：推送
     */
    @ApiModelProperty(value = "非付费用户是否推送消息  0：不推送 1：推送 默认不推送")
    private Boolean sendWithoutPay;

    @ApiModelProperty(value = "AI开关 0：关闭 1：开启 默认关闭")
    private Boolean aiSwitch;

	@ApiModelProperty(value = "视频直播开关 0：关闭 1：开启 默认开")
    private Boolean videoSwitch;
    /**
     * 班主任接受考勤推送 0：不推送 1：推送 默认1
     */
    @ApiModelProperty(value = "班主任接受考勤推送 0：不推送 1：推送 默认1")
    private Boolean receiveAttendClassTeacher;

    /**
     * 宿管员接受考勤推送 0：不推送 1：推送 默认1
     */
    @ApiModelProperty(value = "宿管员接受考勤推送 0：不推送 1：推送 默认1")
    private Boolean receiveAttendHouseparent;

    /**
     * 家长接受考勤推送 0：不推送 1：推送 默认0
     */
    @ApiModelProperty(value = "家长接受考勤推送 0：不推送 1：推送 默认0")
    private Boolean receiveAttendFamily;

    /**
     * 是否允许老师通行 0不允许 1允许 默认0
     */
    @ApiModelProperty(value = "是否允许老师通行 0不允许 1允许 默认0")
    private Boolean receiveAccessTeacher;

    /**
     * 是否允许班主任通行 0不允许 1允许 默认0
     */
    @ApiModelProperty(value = "是否允许班主任通行 0不允许 1允许 默认0")
    private Boolean receiveAccessClassTeacher;

    /**
     * 是否允许男生串寝 0不允许 1允许 默认0
     */
    @ApiModelProperty(value = "是否允许男生串寝 0不允许 1允许 默认0")
    private Boolean receiveAccessBoy;

    /**
     * 是否允许女生串寝 0不允许 1允许 默认0
     */
    @ApiModelProperty(value = "是否允许女生串寝 0不允许 1允许 默认0")
    private Boolean receiveAccessGirl;

    /**
     * 通行对象（班主任）0不允许 1允许 默认1
     */
    @ApiModelProperty(value = "通行对象（班主任）0不允许 1允许 默认1")
    private Boolean passClassTeacher;

    /**
     * 通行对象（家长）0不允许 1允许 默认1
     */
    @ApiModelProperty(value = "通行对象（家长）0不允许 1允许 默认1")
    private Boolean passFamily;

    /**
     * 通行对象（学生）0不允许 1允许 默认0
     */
    @ApiModelProperty(value = "通行对象（学生）0不允许 1允许 默认0")
    private Boolean passStudent;

    /**
     * 通行对象（其他老师）0不允许 1允许 默认0
     */
    @ApiModelProperty(value = "通行对象（其他老师）0不允许 1允许 默认0")
    private Boolean passOther;

    /**
     * 温测推送配置
     */
    private Object temperatureConfig;

    @ApiModelProperty(value = "控制家长可否录人脸开关 0：关闭 1：开启 默认关闭")
    private Boolean faceFamilyFlag;

    @ApiModelProperty(value = "录制他人人脸开关 0：关闭 1：开启 默认关闭")
    private Boolean faceOtherPersonFlag;

    @ApiModelProperty(value = "请假是否推送消息开关 0：关闭 1：开启 默认关闭")
    private Boolean leaveMessageFlag;

    /**
     * 操作用户信息
     */
    @ApiModelProperty(value="操作用户信息",hidden = true)
    private UserDto userDto;


    public static OrgServiceConfigDto getDefaultDto(){
        OrgServiceConfigDto orgServiceConfigDto = new OrgServiceConfigDto();
        orgServiceConfigDto.setAiSwitch(false);
        orgServiceConfigDto.setFourthFlag(true);
        orgServiceConfigDto.setBasicFlag(true);
        orgServiceConfigDto.setCheckFlag(true);
        orgServiceConfigDto.setSecondFlag(true);
        orgServiceConfigDto.setThirdFlag(true);
        orgServiceConfigDto.setWxFlag(true);
        orgServiceConfigDto.setReceiveAccessBoy(false);
        orgServiceConfigDto.setReceiveAccessGirl(false);
        orgServiceConfigDto.setReceiveAccessClassTeacher(false);
        orgServiceConfigDto.setReceiveAccessTeacher(false);
        orgServiceConfigDto.setSimilarity((byte)90);
        orgServiceConfigDto.setVideoSwitch(true);
        orgServiceConfigDto.setSendWithoutPay(false);
        orgServiceConfigDto.setLeastUnitForService((byte)2);
        orgServiceConfigDto.setReceiveAttendMaster(false);
        orgServiceConfigDto.setReceiveAttendStudent(false);
        orgServiceConfigDto.setReceiveAttendClassTeacher(true);
        orgServiceConfigDto.setReceiveAttendHouseparent(true);
        orgServiceConfigDto.setReceiveAttendFamily(false);
        orgServiceConfigDto.setPassClassTeacher(true);
        orgServiceConfigDto.setPassFamily(true);
        orgServiceConfigDto.setPassStudent(false);
        orgServiceConfigDto.setPassOther(false);
        //默认温测配置
        orgServiceConfigDto.setTemperatureConfig(TemperatureConfigDto.defaultConfig());
        orgServiceConfigDto.setFaceFamilyFlag(false);
        orgServiceConfigDto.setFaceOtherPersonFlag(false);
        return orgServiceConfigDto;
    }
}
